import { defineStore } from "pinia";
import { computed, reactive, ref } from "vue";

// const UserCountStore=defineStore('Count',{
    //     // actions里面防止的是一个个方法，用于响应组件中的“动作”
    //     actions:{
        //         increment(value:any){
            //             console.log("increament被调用了",value)
            //             // 修改数据
            //             console.log(this.sum);
            //             // this代表当前的store对象
            //             this.sum+=value;
//             console.log(this.sum)
//         }
//     },
//     // 真正存储数据的地方
//     state(){
    //         return {
        //             sum:6,
        //             school:'鸿福学校',
        //             address:'北京市'
        //         }
        //     },
        //     getters:{
        //         bigSum(state){
        //             return state.sum*10;
        //         },
        //         upperSchool(state){
        //             console.log('@@!!',this)
        //             return state.school.toUpperCase()
        //         }
        //     }
        // })
        
        // export {UserCountStore}
                    
// 以上都是选项式API的写法

// 接下来是组合式API写法
const UserCountStore=defineStore('Count',()=>{
    const school=ref('鸿福学校')
    let sum=ref(12)
    // let school=ref('鸿福学校'),
    let address=ref('北京市')
    // 方法
    function increment(value:any){
                    console.log("increament被调用了",value)
                    // 修改数据
                    // console.log(sum);
                    // this代表当前的store对象
                    sum.value+=value;
            // console.log(sum)
    }
    const bigSum=computed(()=>{
        return sum.value*10
    })
    // function bigSum(state:any){
    //                 return state.sum*10;
    //             }
    // function upperSchool(state:any){
    //     // console.log('@@!!',this)
    //     return state.school.toUpperCase()
    // }
    const upperSchool=computed(()=>{
        return school.value.toUpperCase()
    })
    return {sum,school,address,bigSum,upperSchool,increment}
})
// 注意最后要暴露
export {UserCountStore}